package com.hengpeng.itfinoss.service.stm;

import java.util.LinkedHashMap;
import java.util.Set;

import com.hengpeng.common.exception.ServiceResult;
import com.hengpeng.common.persist.QueryResult;
import com.hengpeng.common.persist.entity.AbstractEntity.BoolValue;
import com.hengpeng.common.persist.query.model.Order.OrderType;
import com.hengpeng.itfinbase.persist.Comment;
import com.hengpeng.itfinbase.persist.Comment.CommentType;

/**
 * TODO 留言信息服务接口
 * @author lanmingming
 */

public interface CommentService
{

	/**
	 * 新增留言
	 * @param comment
	 */
	ServiceResult<Comment> save(Comment comment);

	/**
	 * 获取留言
	 * @param id 留言流水号
	 * @return
	 */
	ServiceResult<Comment> get(long id);

	/**
	 * 更新留言
	 * @param comment
	 * @return
	 */
	ServiceResult<Comment> update(Comment comment);

	/**
	 * 分页查询留言
	 * @param storeId 会员店编号
	 * @param commentType 留言类型
	 * @param auditState 审核状态
	 * @param replyState 回复状态
	 * @param content 内容
	 * @param reply 回复
	 * @param title 主题
	 * @param commUserName 留言人
	 * @param replyUserName回复人
	 * @param isHidden 是否隐藏
	 * @param pageIndex 当前页
	 * @param pageSize 每页记录数
	 * @param sortMap 排序集合
	 * @return
	 */
	QueryResult<Comment> selectCommentWithPage(CommentType commentType, BoolValue auditState, BoolValue replyState,
			String content, String reply, String title, String commUserName, String replyUserName, BoolValue isHidden,
			int pageIndex, int pageSize, LinkedHashMap<String, OrderType> sortMap);

	/**
	 * 批量删除留言
	 * @param ids
	 */
	ServiceResult<Comment> delect(Set<Object> ids);

}
